﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Electrical;
using YArchitech.LIB.YJKControls;
using HYElectricSetting;

namespace Model
{
	public partial class ElecEquipConnForm : System.Windows.Forms.Form
	{
		public ElecEquipConnForm(ref List<SConduitTypeData> lstConduitType, Document doc)
		{
			this.mDoc = doc;
			this.m_lstConduitType = lstConduitType;
			this.InitializeComponent();
		}

		private void RefreshDlgComboxConduitType()
		{
			if (this.cbxConduitType.Items.Count > 0 && this.m_elemConduit != null)
			{
				bool flag = false;
				string name = this.m_elemConduit.Name;
				foreach (object obj in this.cbxConduitType.Items)
				{
					SConduitTypeData sconduitTypeData = (SConduitTypeData)obj;
					if (string.Compare(sconduitTypeData.ToString(), name, true) == 0)
					{
						flag = true;
						this.cbxConduitType.SelectedItem = sconduitTypeData;
						break;
					}
				}
				if (!flag)
				{
					this.cbxConduitType.SelectedIndex = 0;
				}
			}
		}

		private void RefreshDlgComboxRadius()
		{
			this.cbxRadius.Items.Clear();
			if (this.cbxConduitType.SelectedItem == null || this.m_lstConduitType == null)
			{
				return;
			}
			foreach (int num in ((SConduitTypeData)this.cbxConduitType.SelectedItem).ConduitType.ConduitSizeSet)
			{
				this.cbxRadius.Items.Add(num);
			}
			if (this.cbxRadius.Items.Count > 0)
			{
				string strB = this.cbxConduitType.SelectedItem.ToString();
				foreach (SConduitTypeData sconduitTypeData in this.m_lstConduitType)
				{
					if (string.Compare(sconduitTypeData.Name, strB, true) == 0)
					{
						string s = string.Format("{0:F0}", sconduitTypeData.Radius);
						int num2 = this.cbxRadius.FindString(s, -1);
						if (num2 > -1)
						{
							this.cbxRadius.SelectedIndex = num2;
							return;
						}
					}
				}
				this.cbxRadius.SelectedIndex = 0;
			}
		}

		private void button1_Click(object sender, EventArgs e)
		{
			if (this.m_lstConduitType == null)
			{
				return;
			}
			if (this.cbxConduitType.SelectedItem == null || this.cbxConduitType.Items == null)
			{
				return;
			}
			if (this.cbxRadius.SelectedItem == null || this.cbxRadius.Items == null)
			{
				return;
			}
			string strB = this.cbxConduitType.SelectedItem.ToString();
			foreach (SConduitTypeData sconduitTypeData in this.m_lstConduitType)
			{
				if (string.Compare(sconduitTypeData.Name, strB, true) == 0)
				{
					sconduitTypeData.Radius = double.Parse(this.cbxRadius.SelectedItem.ToString());
					break;
				}
			}
			SConduitTypeData sconduitTypeData2 = this.cbxConduitType.SelectedItem as SConduitTypeData;
			this.m_ConduitType = sconduitTypeData2.elemConduitType;
			base.Close();
			base.DialogResult = DialogResult.OK;
		}

		private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
		{
			this.RefreshDlgComboxRadius();
		}

		private void ElecEquipConnForm_Load(object sender, EventArgs e)
		{
			this.cbxConduitType.Items.Clear();
			foreach (RevitConduitType revitConduitType in ElectricSettingDataAssist.GetRevitConduitTypes(this.mDoc))
			{
				double dRadius = 16.0;
				if (revitConduitType.ConduitSizeSet.Count > 0)
				{
					dRadius = (double)revitConduitType.ConduitSizeSet[0];
				}
				SConduitTypeData item = new SConduitTypeData(dRadius, revitConduitType, (ConduitType)this.mDoc.GetElement(revitConduitType.ConduitTypeId));
				this.cbxConduitType.Items.Add(item);
			}
			this.RefreshDlgComboxConduitType();
			this.RefreshDlgComboxRadius();
		}

		public Conduit ElemConduit
		{
			set
			{
				this.m_elemConduit = value;
			}
		}

		public ConduitType ConduitTypeSel
		{
			get
			{
				return this.m_ConduitType;
			}
		}

		public double ConduitRadius
		{
			get
			{
				return double.Parse(this.cbxRadius.SelectedItem.ToString());
			}
		}

		private Document mDoc;

		private List<SConduitTypeData> m_lstConduitType;

		private Conduit m_elemConduit;

		private ConduitType m_ConduitType;
	}
}
